package com.example.dao;

import com.example.entity.Role;

import java.util.List;

/**
 * @author fyxw
 * @description 针对表【rbac_role】的数据库操作Mapper
 * @createDate 2021-11-28 10:40:38
 * @Entity com.example.entity.Role
 */
public interface RoleDao {
    /**
     * 新建一个role
     *
     * @param role 传入一个role对象，id不需要赋值
     */
    void addRole(Role role);

    /**
     * 通过id删除role, 并返回是否删除成功,
     * 不处理由于异常导致的失败行为, 仅处理无此id对应的role导致的删除失败
     *
     * @param id role id
     * @return 是否删除成功
     */
    int deleteById(int id);

    /**
     * 通过新的role修改原有的role, id必须提供
     * 其余字段,若为null,则不会修改该字段
     *
     * @param role 已经修改的role
     */
    void updateRole(Role role);

    /**
     * 通过id查询
     *
     * @param id 唯一标识符
     * @return Role 对象
     */
    Role findRoleById(int id);

    /**
     * 查询所有数据
     * @return list
     */
    List<Role> findAll();

    /**
     * 查询该用户对应的所有角色
     * @param username 用户名
     * @return 角色集合
     */
    List<String> findRoles(String username);
}




